@@ -23,6 +23,7 @@ module Agents |
||
| 23 | 23 |
* `verbs` - Comma-separated list of http verbs your agent will accept. |
| 24 | 24 |
For example, "post,get" will enable POST and GET requests. Defaults |
| 25 | 25 |
to "post". |
| 26 |
+ * `response` - The response message to the request. Defaults to 'Event Created'. |
|
| 26 | 27 |
MD |
| 27 | 28 |
end |
| 28 | 29 |
|
@@ -36,7 +37,8 @@ module Agents |
||
| 36 | 37 |
def default_options |
| 37 | 38 |
{ "secret" => "supersecretstring",
|
| 38 | 39 |
"expected_receive_period_in_days" => 1, |
| 39 |
- "payload_path" => "some_key" |
|
| 40 |
+ "payload_path" => "some_key", |
|
| 41 |
+ "response" => "Event Created" |
|
| 40 | 42 |
} |
| 41 | 43 |
end |
| 42 | 44 |
|
@@ -53,7 +55,7 @@ module Agents |
||
| 53 | 55 |
create_event(payload: payload) |
| 54 | 56 |
end |
| 55 | 57 |
|
| 56 |
- ['Event Created', 201] |
|
| 58 |
+ [response_message, 201] |
|
| 57 | 59 |
end |
| 58 | 60 |
|
| 59 | 61 |
def working? |
@@ -69,5 +71,9 @@ module Agents |
||
| 69 | 71 |
def payload_for(params) |
| 70 | 72 |
Utils.value_at(params, interpolated['payload_path']) || {}
|
| 71 | 73 |
end |
| 74 |
+ |
|
| 75 |
+ def response_message |
|
| 76 |
+ interpolated['response'] || 'Event Created' |
|
| 77 |
+ end |
|
| 72 | 78 |
end |
| 73 | 79 |
end |
@@ -38,6 +38,20 @@ describe Agents::WebhookAgent do |
||
| 38 | 38 |
expect(out).to eq(['Not Authorized', 401]) |
| 39 | 39 |
end |
| 40 | 40 |
|
| 41 |
+ it 'should respond with customized response message if configured with `response` option' do |
|
| 42 |
+ out = nil |
|
| 43 |
+ agent.options['response'] = 'That Worked' |
|
| 44 |
+ out = agent.receive_web_request({ 'secret' => 'foobar', 'some_key' => payload }, "post", "text/html")
|
|
| 45 |
+ expect(out).to eq(['That Worked', 201]) |
|
| 46 |
+ end |
|
| 47 |
+ |
|
| 48 |
+ it 'should respond with `Event Created` if response option is nil' do |
|
| 49 |
+ out = nil |
|
| 50 |
+ agent.options['response'] = nil |
|
| 51 |
+ out = agent.receive_web_request({ 'secret' => 'foobar', 'some_key' => payload }, "post", "text/html")
|
|
| 52 |
+ expect(out).to eq(['Event Created', 201]) |
|
| 53 |
+ end |
|
| 54 |
+ |
|
| 41 | 55 |
describe "receiving events" do |
| 42 | 56 |
|
| 43 | 57 |
context "default settings" do |